package bankowosc.polaczenie;

import java.math.BigDecimal;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import bankowosc.dane.Ubezpieczenie;

public class UbezpieczenieBD {

	public ArrayList<Ubezpieczenie> pobierzUbezpieczenia(polacz p, String nr_rach) {
		ArrayList<Ubezpieczenie> ubezpieczenia = new ArrayList<>();
		Statement stmt = p.getStmt();
		String komenda = "select * from ubezpieczenie where nr_rachunku="+nr_rach;
		try {
			ResultSet rs = stmt.executeQuery(komenda);
			while(rs.next()) {
				ubezpieczenia.add(new Ubezpieczenie(rs.getInt(1),rs.getInt(2),rs.getString(3),
						rs.getInt(4),rs.getString(5),rs.getString(6),rs.getFloat(7),
						rs.getFloat(8),rs.getString(9)));
			}
			rs.close();
			return ubezpieczenia;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public boolean dodajUbezpieczenie(polacz p, int id_klient, String nr_rach, String rodz, int okres, 
			float cykl, float kwota, String obiekt, int liczb_skl) {
		Connection c = p.getC();
		BigDecimal rach = new BigDecimal(nr_rach);
		try {
			CallableStatement ctmt = c.prepareCall("{call dodaj_ubezpieczenie(?,?,?,?,?,?,?,?)}");
			ctmt.setInt(1, id_klient);
			ctmt.setBigDecimal(2, rach);
			ctmt.setString(3, rodz);
			ctmt.setInt(4, okres);
			ctmt.setFloat(5, cykl);
			ctmt.setFloat(6, kwota);
			ctmt.setString(7, obiekt);
			ctmt.setInt(8, liczb_skl);
			ctmt.execute();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
	}
}
